package com.sunwayhorizo.health.business.clinic.orders.query;

import java.util.List;

import javax.ejb.Local;

import com.sunwayhorizo.health.hl7.common.Hl7Exception;
import com.sunwayhorizo.health.hl7.rim.Act;
import com.sunwayhorizo.health.hl7.rim.InvoiceElement;
import com.sunwayhorizo.health.hl7.rim.SubstanceAdministration;

@Local
public interface OrdersQueryLocal
{
    /**
     * 根据价表分类查询费用明细
     * @param code 价表编码
     * @param pageNo 当前第几页
     * @param pageSize 一页显示多少条记录
     * @return List<InvoiceElement>
     * @throws Hl7Exception
     */
    public List<InvoiceElement> findInvoiceElementByCode(String code,int pageNo, int pageSize) throws Hl7Exception;
    
    /**
     * 根据费用分类查询该费用明细的总记录数
     * @param code 价表分类
     * @return long
     * @throws Hl7Exception
     */
    public long findInvoiceElementByCode(String code) throws Hl7Exception;
    
    /**
     * 根据药理分类code集合查询所有药品
     * @param materialclassCodes 药理分类编码集合
     * @param pageNo 当前页
     * @param pageSize 每页显示记录数
     * @return List<SubstanceAdministration>
     * @throws Hl7Exception
     */
    public List<SubstanceAdministration> findSubstanceAdministrationByCond(List<String> materialclassCodes,int pageNo, int pageSize) throws Hl7Exception;
    
    /**
     * 根据分类编码code集合查询总记录书
     * @param materialclassCodes 药理分类编码集合
     * @return
     * @throws Hl7Exception
     */
    public long findSubstanceAdministrationByCond(List<String> materialclassCodes) throws Hl7Exception;
    
    /**
     * 根据code查询检查 检验 治疗的项目
     * @param code 项目编码
     * @param ywm 音位码
     * @param pageNo 当前页
     * @param pageSize 每页显示记录数
     * @return List<? extends Act>
     * @throws Hl7Exception
     */
    public List<? extends Act> findCountObsOrProcByCond(String code,String ywm,int pageNo, int pageSize) throws Hl7Exception;
    
    /**
     * 统计检查 检验项目的总记录数
     * @param code 项目编码
     * @return long
     * @throws Hl7Exception
     */
    public long findObsOrProcByCond(String code) throws Hl7Exception;
}
